package sv.ues.fia.fragmentcontrol;

import java.util.ArrayList;
import java.util.List;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemClickListener;
import sv.ues.fia.bdcontrol.ControlBDHelper;
import sv.ues.fia.clases.MyDateFormat;
import sv.ues.fia.clases.SearchListItem;
import sv.ues.fia.clases.SearchListItemAdapter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import sv.ues.fia.R;
import sv.ues.fia.entity.Ciclo;
public class CicloFragment extends Fragment {

	public int currentPage;
	/** DECLARAR AQUI LOS OBJETOS VIEW **/
	public ListView lvResultCiclos;
	public List<Ciclo> listResultCiclos;
	public List<SearchListItem> listItemsResult;
	public SearchListItemAdapter adapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		/** Getting the arguments to the Bundle object */
		Bundle data = getArguments();

		/** Getting integer data of the key current_page from the bundle */
		currentPage = data.getInt("current_page", 0);
		listResultCiclos = new ArrayList<Ciclo>();
		listItemsResult = new ArrayList<SearchListItem>();

	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View v = null;
		
		/** PAGINA 1 **/
		if (currentPage == 1) {
			
			// Cargar LAYOUT de la Pagina 1
			v = inflater.inflate(R.layout.activity_ciclo_insertar, container, false);

			final ControlBDHelper db = new ControlBDHelper(this.getActivity());

			Button btnSave = (Button) v.findViewById(R.id.btnSaveCiclo);
			final EditText edtIdCiclo = (EditText) v.findViewById(R.id.edtIdCiclo);
			
			final DatePicker dateFechaInicioCiclo =(DatePicker) v.findViewById(R.id.dateFechaInicioCiclo); 
			final DatePicker dateFechaFinCiclo = (DatePicker) v.findViewById(R.id.dateFechaFinCiclo);
			//manejo de fecha
						
			/** ACCION DEL BOTON INSERTAR NUEVO REGISTRO **/
			btnSave.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {
					//formateo de fecha inicio
					int day = dateFechaInicioCiclo.getDayOfMonth();
					int month = dateFechaInicioCiclo.getMonth();
					int year = dateFechaInicioCiclo.getYear();
					String formatedDate1 = MyDateFormat.formatDate(year, month, day);
					
					 day = dateFechaFinCiclo.getDayOfMonth();
					 month = dateFechaFinCiclo.getMonth();
					 year = dateFechaFinCiclo.getYear();
					String formatedDate2 = MyDateFormat.formatDate(year, month, day);
					//formateo de fecha
					

					Ciclo newCiclo = new Ciclo();
					
					newCiclo.setIdCiclo(edtIdCiclo.getText().toString());
					newCiclo.setFechaInicioCiclo(formatedDate1);
					newCiclo.setFechaFinCiclo(formatedDate2);
					
					db.abrir();
					Toast.makeText(getActivity(), db.insertar(newCiclo),Toast.LENGTH_LONG).show();
					db.cerrar();

				}
			});
			
		/** PAGINA 2 **/
		} else if (currentPage == 2) {
			
			final ControlBDHelper db = new ControlBDHelper(getActivity());
			
			// Cargar LAYOUT de la Pagina 2
			v = inflater.inflate(R.layout.activity_ciclo_buscar, container,false);

			lvResultCiclos = (ListView) v.findViewById(R.id.ListResultCiclo);
			
			final EditText edtIdCicloSearch = (EditText) v.findViewById(R.id.edtIdCicloSearch);
						
			ListView search = (ListView) v.findViewById(R.id.listOptionSearch);
			
			/** LISTENER DEL BOTON BUSCAR **/
			search.setOnItemClickListener(new OnItemClickListener() {

				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1,	int arg2, long arg3) {
					
					/** CONSULTAR LISTADO DE PERFILES SEGUN ID O NOMBRE **/
					db.abrir();					
					listResultCiclos = db.consultarCiclo(edtIdCicloSearch.getText().toString());					
					db.cerrar();
					
					/** VACIAR RESULTADOS ANTES DE AGREGAR LOS NUEVOS **/
					listItemsResult.clear();
					
					/** LLENAR OTRA LISTA SOLO PARA AGREGARLO AL LISTVIEW **/
					for(Ciclo x: listResultCiclos){
						
						SearchListItem item = new SearchListItem();
						
						
						// Se le asigna un TITULO 
						item.setTitle(getActivity().getString(R.string.edtIdCicloSearch)+" "+ x.getIdCiclo().toString());
						
						// Se le asigna un SUBTITULO
						item.setSubTitle(getActivity().getString(R.string.fechaInicioCicloForm) +" "+x.getFechaInicioCiclo().toString());
						listItemsResult.add(item);		
												
						
					}
					
					adapter.notifyDataSetChanged();
					
				}

			});
			  
			/** SE CREA EL ADAPTER PERSONALIZADO PARA EL LISTVIEW **/
			adapter = new SearchListItemAdapter(this.getActivity(),
					listItemsResult);

			lvResultCiclos.setAdapter(adapter);

			this.getActivity().registerForContextMenu(lvResultCiclos);

		}
		return v;
	}

}
